YouTube Music レアケース
YouTube Music のデータで何か遊んだりする時にぜひ考慮しておきたいレアケースまとめ
Music Premium が必要なアルバム (YouTube Premium でも可)
MVフォールバックがないパターン
MVフォールバックがあったりなかったりするパターン
MVフォールバックがある・原曲も実は再生できるパターン
Tr.2 Turning Up とか
MVフォールバックがある・原曲が再生できないパターン
Tr.7 カイト とか
MVフォールバックがない・原曲が再生できないパターン
Tr.1 SHOW TIME とか
これら3つを網羅している
MVフォールバックがあるとしれっと musicResponsiveListItemRenderer.playlistItemData.videoId が入れ替わる!!
MVフォールバックがない時は musicResponsiveListItemRenderer.musicItemRendererDisplayPolicy が MUSIC_ITEM_RENDERER_DISPLAY_POLICY_GREY_OUT になる?
各トラックのfree/premium判定方法を考える
Public API で playlistitems を取る
freeアカウントの Music InnerTube で playlist を取る
同じIDがある かつ musicItemRendererDisplayPolicy が greyout でない時は free track
greyout があった場合
paidアカウントの Music InnerTube で playlist を取る
当該IDがgreyoutではなく存在していたら paid track
それでもgreyoutの場合は unavailable track? (おま国?)
Public API でおま国状態取れるはず
→ これ Music じゃなくて www で取ると下に書いてあるおかしいトラックの判定までできるのでは
と思ったが、結局 unavailable track かどうかがわからんので困る
www にあったら premium, なかったら premium music でリクエストで greyout 判定でよさそう
違うIDがある場合
freeアカウントの www InnerTube で playlist を取る
Public API と同じIDが取れるトラックは free track
取れない場合は paid track
でたぶん正しくなるはず
特定地域だけ Music Premium が必要なアルバム
InnerTube でアルバムを引いても Music Premium に入っているアカウントで認証していないと動画IDが取れない 日本でかつMusic Premium に入っていない状態だとそもそも↑のプレイリストが見れない
認証なしで日本用動画IDを取る方法募集中です
2025-06-29追記
更に壊れてた
wwwのプレイリストページが壊れている (無料でもPremiumでも)
https://gyazo.com/16d5159cba3f46b5f523f31c3b11ab56
Music Premium じゃなくても再生できるようになってた (???)
wwwでもmusicでも
でもmusicで聞くとなんか下のバーが出なくなる
これとMVフォールバックが組み合わさると free or not 判定ができなくなる?
free, music → MVフォールバック
premium, music → 正規ID
free, www → unavailable
premium, www → unavailable
となった時に free で視聴できるかどうかが watch 呼ばないと判定不可能
OAuthセッション持っていいならやりようがあることに気付いた
判定したい曲を自作プレイリストに入れる
free環境で当該プレイリストをwwwで見る
一部トラックが Premium でも unavailable
クライアント上だと見た目が(アーティスト名 - Topic ではなく)アーティストの公式チャンネルになる曲
fhána Official Channel
fhána - トピック
InnerTube だと player の playerConfig.webPlayerConfig.webPlayerActionsPorting.subscribeCommand.subscribeEndpoint.channelIds あたりから取れる? YouTube Music でしかタイトルが日本語にならない曲
逆に、YouTube 上では日本語なのにYouTube Music だと英語になる曲
そこまでレアではない: アーティスト名がリンクにならない(≒アーティストのチャンネルがない)動画
複数人だからリンクになっていないように思えるが…
などがある
激レア: アルバムがリンクにならない
今は直った
/browse/:id から /playlist?list=... への解決はリージョンロックで中身が見れない地域からだとできない
日本だと
https://gyazo.com/1a983768e6fd5bbea21957e964878eb8
海外だと
https://gyazo.com/0c12d10da4ca454636ee22f854fd552e
困っている!誰か解決方法教えてください
1アルバムに対して複数のプレイリストが存在することがある?
例を紛失してしまった
基本は限定公開のプレイリストがあるが、それに加えて公開のプレイリストがあることがあったはず
YouTube内検索に載せるため?
↓の手段で統一できる
ところで /playlist?list=... から /browse/:id に戻すには?
Web版にはそういうAPIはない
アクセスして謎のJSONを読めば貰えるが…?
よろしい ならばアプリだ
というわけで /youtubei/v1/navigation/resolve_url に {url: "https://music.youtube.com/playlist?list=..."} を渡すと endpoint.browseEndpoint.browseId が貰える!
これを browse すると真プレイリストIDが貰える
ただし上記の通りリージョンロックに影響される
「他のバージョン」は <link rel=canonical> っぽい動きをする
Eutopia / EMOTION / stars we chase の 鐘嵐珠盤の配信上のUPCは 195533006299 である
ちなみに: 別に入れ替わっているというわけではない
三船栞子盤のUPCは 195533006305 である
三船栞子盤が出てくる (正しい)